/*
  ○ new     表示：该类型是可以用new操作符调用。
  ○ ...args 表示：构造器可以接受【任意数量】的参数。
  ○ any[]   表示：构造器可以接受【任意类型】的参数。
  ○ {}      表示：返回类型是对象(非null、非undefined的对象)。
*/
// 定义Constructor类型，其含义是构造类型
type Constructor = new (...args: any[]) => {}

// 需求: fn 得是一个类
// function test(fn: Function) { }
function test(fn: Constructor) { }

// const Person = () => { }
// test(Person)

class Person { }
test(Person)